/**
 * 
 */
package com.proyemp.reportes.generadores;

import java.util.HashMap;
import java.util.Vector;

import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.JasperRunManager;

import org.apache.log4j.Logger;

import com.proyemp.reportes.DSReportes;
import com.proyemp.reportes.info.InfoGenerico;

/**
 * @author rfernand
 * 
 */
public class GeneradorReportes {
	private static Logger logger = Logger.getLogger(GeneradorReportes.class);
	private DSReportes datasource;

	/**
	 * Method generarReporte.
	 * @param reporte
	 * @param parametros
	 * @param vectorInfo
	 * @return byte[] correspondiente al reporte en formato pdf.
	 * Se encarga de crear el DataSource y llamar a Jasper para que cree el reporte
	 * 		
	 */

	public byte[] generarReporte(JasperReport reporte, HashMap parametros, Vector vectorInfo) {
		//se crea el JRDataSource para el reporte
		datasource = new DSReportes();

		if(vectorInfo == null){
			vectorInfo = new Vector<InfoGenerico>();
		}
		// se setea el ds con los datos (vectorDeVectoresDatos)
		datasource.setDatosReporte(vectorInfo);
		try {
			logger.debug("Generando reporte...");
			return JasperRunManager.runReportToPdf(reporte, parametros, datasource);
		} catch (JRException e) {
			logger.error("Error al generar el pdf del reporte");
			e.printStackTrace();
		}
		return null;
	}
}
